
\newcommand{\erf}{\hbox{erf}}
\newcommand{\real}{\hbox{\bf R}}

\begin{centering}
\bf Laboratorio de M\'etodos Num\'ericos - Segundo cuatrimestre 2007 \\
\bf Trabajo Pr\'actico N\'umero 4: Impacto profundo \\
\end{centering}

\vskip 25pt
\hrule
\vskip 11pt

\textbf{Introducci\'on}

Nos encontramos nuevamente en el Centro de Operaciones Log\'\i sticas
Laterales (\textsc{C.o.l.l.}), en uno de los momentos m\'as dram\'aticos
de la XLII Guerra Intergal\'actica. El planeta Z-80 est\'a siendo atacado
por un conjunto de misiles que amenazan su integridad, y nuestra misi\'on
consiste en detener este cruel ataque.

Para defender al planeta Z-80 contamos con un n\'umero reducido de bombas
de destrucci\'on masiva. Estas bombas son enviadas a un punto del espacio
circundante a nuestro planeta, donde se las hace explotar. La explosi\'on
genera una onda expansiva que destruye todos los objetos (y misiles) ubicados
a menos de un cierto radio cr\'\i tico del centro de la explosi\'on.

Nuestros radares nos proporcionan la posici\'on exacta de los misiles
enemigos a intervalos de tiempo aproximadamente constantes\footnote{Dominamos
los viajes interplanetarios pero nuestros radares usan la anticuada
tecnolog\'ia del siglo XXI.}. En funci\'on de estas mediciones deberemos
determinar las trayectorias futuras de los misiles y, sobre la base de estas
estimaciones, deberemos decidir en qu\'e lugar y en qu\'e momento tenemos que
producir las explosiones de nuestras bombas defensivas, con el objetivo de
destruir la mayor cantidad de misiles enemigos. La supervivencia de nuestro
planeta est\'a en sus manos.

\textbf{Enunciado}

El objetivo del trabajo pr\'actico es implementar un programa que lea las
mediciones de las posiciones de los misiles desde un archivo de texto, y que
deje en otro archivo el momento y la posici\'on en la que deber\'a detonarse
cada bomba defensiva, con el objetivo de maximizar la cantidad de misiles
enemigos destruidos. Debido a la urgencia que tenemos para activar nuestras
defensas, el programa no deber\'a utilizar m\'as de 20 sg.~de procesamiento
total.

El archivo de entrada contiene las posiciones de los
misiles enemigos a intervalos de tiempo constantes de 1 sg. Para estimar
la trayectoria futura de cada misil se deber\'an interpolar las
mediciones de las posiciones enemigas con splines param\'etricos naturales,
utilizando la extrapolaci\'on de cada spline hacia el futuro como una
estimaci\'on de la trayectoria correspondiente.

El programa debe tomar por l\'\i nea de comandos los nombres del archivo
de entrada y del archivo de salida, de la siguiente forma:

\begin{verbatim}
   tp4.exe misiles.txt bombas.txt
\end{verbatim}

El archivo con los datos de entrada (llamado \texttt{misiles.txt} en el
ejemplo) tiene en la primera l\'\i nea la cantidad $n$ de misiles y la
cantidad $m$ de mediciones para cada uno. A continuaci\'on, se incluyen $m$
filas correspondientes al primer misil, cada una de las cuales contiene
las coordenadas $x$ e $y$ de la posici\'on del misil en los instantes
$t=1,2,\dots,m$ sg.~(simplificamos el an\'alisis considerando un espacio
bidimensional). Luego de las $m$ l\'\i neas correspondientes al primer misil,
el archivo contiene $m$ l\'\i neas con el mismo formato correspondientes al
segundo misil, etc. Por \'ultimo, el archivo contiene una l\'\i nea con la
cantidad $b$ de bombas defensivas, el radio $r$ de la onda expansiva de cada
una y el radio $R$ de nuestro planeta, cuyo centro suponemos ubicado en el
origen de coordenadas. Por ejemplo, el siguiente archivo es un ejemplo de
datos de entrada v\'alidos:

\begin{verbatim}
   3 4

   1.0    2.5
   1.1    2.4
   1.23   2.3
   1.27   2.15

   1.9    3.5
   1.8    3.4
   1.7    3.2
   1.75   2.9

   -2.2   2.3
   -2.15  2.23
   -2.12  2.17
   -2.08  2.11

   2 0.7 1.0
\end{verbatim}

Por su parte, el archivo de salida (llamado \texttt{bombas.txt} en el
ejemplo) debe tener una l\'\i nea por cada bomba, que contenga el instante
de la explosi\'on y las coordenadas $x$ e $y$ del centro de la
explosi\'on. Es importante notar que el punto central de cada explosi\'on
debe tener una distancia al origen de coordenadas de al menos $R+r$, para
evitar que parte del planeta sea destruido por nuestras mismas bombas
defensivas. Por ejemplo, si $b=2$ el siguiente es un ejemplo de archivo
de salida:

\begin{verbatim}
   2.4   2.15 2.80
   1.6   -2.04 2.50
\end{verbatim}

El informe debe contener todas las opciones que el grupo haya considerado
para determinar los instantes y posiciones en los que se deben detonar las
bombas defensivas.

\vskip 15pt

\hrule

\vskip 11pt

Fecha de entrega: Lunes 19 de Noviembre

